#ifndef _CARD_H
#define _CARD_H

#include <iostream>
#include <string>
using std::string;
using std::ostream;
using std::istream;


enum Suit 
{
	DIAMONDS, 
	CLUBS, 
	HEARTS,
	SPADES,
	DELIM,
  SUIT_MAX //is invalid type- for default constructor and loops
};

class Card
{
 public:
  int face;
  Suit suit;

 public:
 Card():face(0),suit(DELIM){};
  Card(string s);
  Card(int n, Suit f);
  Card(int f, int s);
  Card(int f,string s);
  Card(const Card&);
  Suit suitDetermine(string s);
  //const Card& operator=(const Card &rhs);
  bool operator==(const Card &rhs) const;
  bool operator<(const Card &rhs) const;
  bool operator<=(const Card &rhs) const;
  //friend istream& operator>>(istream &,Card &);//?
  friend ostream& operator<<(ostream &,const Card &);
  //int askSuitInt();

  // Accesor methods
  int getFace() const { return face; }
  Suit getSuit() const { return suit; }
};//end of Card
#endif
